[SYCL] Add new FPGA loop attribute enable_loop_pipelining#9263
Merged
steffenlarsen merged 9 commits intointel:syclfrom May 3, 2023
Merged
[SYCL] Add new FPGA loop attribute enable_loop_pipelining#9263steffenlarsen merged 9 commits intointel:syclfrom
steffenlarsen merged 9 commits intointel:syclfrom
Conversation
This patch adds support for new FPGA attribute called enable_loop_pipelining,
which is similar to disable_loop_pipelining.
This attribute is useful in the low-area flow, in which all loops are unpipelined
by default and the user may wish to enable loop pipelining.
The [[intel::enable_loop_pipelining]] attribute is applicable to loops in SYCL device code.
If the loop has this attribute, the LLVM IR loop will have the
llvm.loop.intel.pipelining.enable metadata, with value 1, as shown below:
br .... !llvm.loop !0
!0 = {!1}
!1 = !{!"llvm.loop.intel.pipelining.enable", i32 1}
An error should be output if both [[intel::enable_loop_pipelining]] and
[[intel::disable_loop_pipelining]] are applied to the same loop.
Signed-off-by: Soumi Manna <soumi.manna@intel.com>
premanandrao
reviewed
May 1, 2023
premanandrao
reviewed
May 2, 2023
Contributor
premanandrao
left a comment
There was a problem hiding this comment.
Sorry for missing a couple things yesterday.
Contributor
Author
Not a Problem @premanandrao. Thanks for catching and reviews! |
premanandrao
approved these changes
May 2, 2023
premanandrao
reviewed
May 2, 2023
elizabethandrews
approved these changes
May 2, 2023
Contributor
Author
|
Thank you everyone for reviews! |
Contributor
Author
|
The failed test is unrelated to my patch: Failed Tests (1): |
3 tasks
Contributor
Author
|
@intel/llvm-gatekeepers This PR is ready. Could you please merge it? Thank you |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This patch adds support for new FPGA attribute called enable_loop_pipelining, which is similar to disable_loop_pipelining.
This attribute is useful in the low-area flow, in which all loops are unpipelined by default and the user may wish to enable loop pipelining.
The [[intel::enable_loop_pipelining]] attribute is applicable to loops in SYCL device code. If the loop has this attribute, the LLVM IR loop will have the llvm.loop.intel.pipelining.enable metadata, with value 1, as shown below:
br .... !llvm.loop !0
!0 = {!1}
!1 = !{!"llvm.loop.intel.pipelining.enable", i32 1}
An error should be output if both [[intel::enable_loop_pipelining]] and [[intel::disable_loop_pipelining]] are applied to the same loop.